2025.7.16 meshgrid【numpy】
meshgridの動作をより深く理解したい。
ベクトルを1つだけ与えてみる。
code:p.py
import numpy as np
XX = np.meshgrid(x)
print('# XX:\n', XX)
'''
# XX:
'''
エラーを吐くこと無く動作するが、使い道の無い用法だ。
多次元のベクトルを与えてみる。
code:p.py
import numpy as np
x = 1, 3, 5], [-2, -4, -6
XX, YY = np.meshgrid(x, y)
print('# XX:\n', XX)
print('# YY:\n', YY)
'''
# XX:
# YY:
'''
多次元ベクトルは1Dに reshape されるようだ。
ベクトルを3つ与えてみる。それぞれ長さが1, 2, 3である。
code:p.py
import numpy as np
XX, YY, ZZ = np.meshgrid(x, y, z)
print('# XX:', XX.shape, '\n', XX)
print('# YY:', YY.shape, '\n', YY)
print('# ZZ:', ZZ.shape, '\n', ZZ)
'''
# XX: (2, 1, 3)
[1 1 1,
1 1 1]
# YY: (2, 1, 3)
[2 2 2,
3 3 3]
# ZZ: (2, 1, 3)
[4 5 6,
4 5 6]
'''
3つのnarrayが得られる。これらを要素毎にみていると x-y-z の順に 1x2x3=6 通りの全ての組み合わせが得られることが確認できる。多変数関数の場合も対応できることが確認できた。
code:p.py
import numpy as np
def func(x, y, z):
return x**2 + y*z
x = np.linspace(0, 10, 10)
y = np.linspace(0, 10, 20)
z = np.linspace(0, 10, 30)
XX, YY, ZZ = np.meshgrid(x, y, z)
f = func(XX, YY, ZZ)
print(f.shape)
'''
(20, 10, 30)
'''
10x20x30 点の(x, y, z)の組み合わせに対する関数fを計算している。